function combination(m,n){
    return factorial(m,n)/factorial(n,n);//就是Cmn(上面是n，下面是m) = Amn(上面是n，下面是m)/Ann(上下都是n)
}

function factorial(m,n){
    var num = 1;
    var count = 0;
    for(var i = m;i > 0;i--){
        if(count == n){//当循环次数等于指定的相乘个数时，即跳出for循环
            break;
        }
        num = num * i;
        count++;
    }
    return num;
}

// console.log(combination(7,4));
// return;

// var arr = [2,2,1];

/*
*  2,2
*  2,1
*  2,1
*
* */

function combine(a,m){
    var r = [];

    var n = a.length;
    if (m <= 0 || m > n) {
        return r;
    }

    for (let i=0; i<n; i++) {
        var t = a[i];
        if (m == 1) {
            r.push(t);
        } else {
            //array_slice() 函数在数组中根据条件取出一段值，并返回。
            //array_slice(array,start,length,preserve)
            // b = array_slice(a, i+1);
            b = a.slice(i+1,n)
            var c = combine(b, m-1);
            c.forEach(v=>{
                if(typeof v == "object"){
                    r.push([t,...v]);
                }else{
                   r.push([t,v])
                }
            })

        }
    }

    return r;
}
function multiply (array) {
    var sum=1;
    for (var i=0; i<array.length; i++) {
        sum = sum * array[i];
    }
    return sum;
}

var arr_ratio = [
    [2.85,3.32],
    [3.65],
    [3.28]
]

var muti_ratio = 1;

var arr = [2,1,1];
// var arr = [1,1,1,1,1,1]
var res = combine(arr,3);
console.log('方案',res);
var zhu = 0;
var max_arr = [];
var min_arr = [];
max_arr.push(2);
min_arr.push(2);
res.forEach((item,index)=>{
    zhu += multiply(item);

})
arr_ratio.forEach((item,index)=>{
min_arr.push(Math.min.apply(null, item))
max_arr.push(Math.max.apply(null, item))
})

console.log('数量',zhu);
console.log('最大',multiply(max_arr).toFixed(2));
console.log('最小',multiply(min_arr).toFixed(2));

//2串1 24.24
//3串1  //理论最高 79.49
// console.log(combine(arr,3));
